Multiple Planes
You can use multiple planes to get a single hash value. Let's take a look at the following example:

Given some point denoted by v, you can run it through several projections to get one hash value. If you compute you get a positive number, so you set . gives you a positive number so you get . is a negative number so you set to be 0. You can then compute the hash value as follows.
Another way to think of it, is at each time you are asking the plane to which side will you find the point (i.e. 1 or 0) until you find your point bounded by the surrounding planes. The hash value is then defined as:
Here is how you can code it up:

P_l is the list of planes. You initialize the value to 0, and then you iterate over all the planes (P), and you keep track of the index. You get the sign by finding the sign of the dot product between v and your plane P. If it is positive you set it equal to 1, otherwise you set it equal to 0. You then add the score for the ith plane to the hash value by computing .
